Various aspects of the present disclosure relate generally to service-oriented architectures and more specifically to a service broker in a service-oriented architecture.
A service-oriented architecture is a software design schema based on discrete pieces of software that act as a service to other applications. When an application requires a function to be performed, the application may send a request to an external service provided by a vendor or to a service broker that may help the requester choose a vendor that can fulfill that function as a service. Regardless, thus, the vendor will perform the function and pass the results to the application.
In cloud computing, many vendors offer functional services such as infrastructure-as-a-service (IaaS), platform-as-a-service (PaaS), and software-as-a-service (SaaS). To perform these functions, the services may require a description of a computing environment. Also, the services may require that the computing environment to be uploaded (e.g., OpenShift cartridge, Amazon Machine Images (AMI) for the Elastic Compute Cloud (EC2) environment, supplying run-time operational parameters, etc.). However, it may alternatively be sufficient simply to send the execution content (e.g., data in an e-mail).
In many cases, several vendors offer similar services, so the application has several vendors from which to choose when requesting certain functionality. In such cases, a service broker may act as an intermediary between the vendors and purchasers of computing services. Typically, the service broker includes a service catalog that lists all of the services that vendors associated with the service broker can perform. When an application requires a service, the application sends a request to the service broker, and the service broker sets up an agreement between the requester and a chosen vendor.